1. Technical Field
The present invention relates to an improved data processing system and in particular to object-oriented programming systems. Still more particularly, the present invention relates to a method and apparatus for dynamically maintaining programs.
2. Description of Related Art
A computer includes both a physical machine, namely the hardware, and the instructions which cause the physical machine to operate, namely the software. Software includes both application and operating system programs. If the program is simply to do tasks for a user, such as solving specific problems, it is referred to as application software. If a program controls the hardware of the computer and the execution of the application programs, it is called operating system software. System software further includes the operating system, the program that controls the actual computer or central processing unit (CPU), and device drivers that control the input and output devices (I/O) such as printers and terminals.
A number of application programs are usually present waiting to use the CPU. The operating system determines which program will run next, how much of the CPU time it will be allowed to use, and what other computer resources the application will be allowed to access and use. Further, each application program will require a special input or output device and the application program must transfer its data to the operating system, which controls the device drivers.
A network containing a number of computers may be formed by having these computers, also referred to as "nodes" or "network computers", communicate with each other over one or more communications links, which is an aggregation which is a computer network. Today, many computer workstations are connected to other workstations, file servers, or other resources in a network. Each computer on a network is connected to the network via an adapter card or other similar means, which provides an ability to establish a communications link to the network.
Many types of programs are presently available in both a stand alone form and from a server in a network that employ various rules for decision making. Presently, many of these types of programs require maintenance of legacy code in languages that may not be current. For example, a company may have a program written in COBOL that are available to users though client computers to select airline flights for travel. At some time, the company may desire to limit it selection of flights to those flights that are direct flights that cost no more than $100.00 more than the cheapest connecting flight. Such a change requires the use of a programmer who is versed in COBOL to make the needed changes. As such programmers become scarcer, the cost of maintenance of such a program increases.
Therefore, it would be advantageous to have an improved method and apparatus for applying changes to programs in a language independent manner.